page.tsx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. "use client";
  2. import { FC, PropsWithChildren, useState } from "react";
  3. import { useRouter } from "@/i18n";
  4. import { useSearchParams } from "next/navigation";
  5. import HeaderBack from "@/components/HeaderBack";
  6. import GoogleCom from "./component/GoogleCom";
  7. import FromCom from "./component/FromCom";
  8. import DomainFooter from "@/components/DomainFooter";
  9. import './page.scss'
  10. import { getLoginApi, getUserInfoApi } from "@/api/user";
  11. import { useGlobalStore } from '@/stores';
  12. import { Toast } from 'antd-mobile'
  13. interface Props {}
  14. const Login: FC<PropsWithChildren<Props>> = () => {
  15. const { setToken, setUserInfo } = useGlobalStore();
  16. const router:any = useRouter()
  17. let searchParams = useSearchParams();
  18. let redirect = searchParams.get('redirect') || ''
  19. const [msgError, setMsgError] = useState('')
  20. const loginRequest = async ({userPhone, pwd}: any) => {
  21. let params = {user_phone: userPhone, pwd}
  22. let res = await getLoginApi(params)
  23. if(res.code == 200) {
  24. setToken(res.data.token)
  25. getUserInfoApi().then(res1 => {
  26. if (res1.code == 200) {
  27. Toast.show({ icon: 'success', content: '登录成功', maskClickable: false })
  28. setUserInfo(res1.data)
  29. setTimeout(() => {
  30. router.replace('/' + redirect)
  31. }, 1000)
  32. }
  33. })
  34. }
  35. setMsgError(res.msg || '')
  36. }
  37. return (
  38. <div className="login-box">
  39. <HeaderBack />
  40. <GoogleCom />
  41. <FromCom callbackFun={loginRequest} msgError={msgError}/>
  42. <DomainFooter />
  43. </div>
  44. );
  45. };
  46. export default Login;